package cn.suxiaoxiang.mmskillbar.utils;

import io.lumine.xikage.mythicmobs.MythicMobs;
import io.lumine.xikage.mythicmobs.items.MythicItem;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;

import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import  io.lumine.xikage.mythicmobs.items.ItemManager;

import java.util.Optional;

/**
 * @author Corder-Suxiaoxiang
 * @UserName 程序员_Suxiaoxiang
 * @date 2025/1/24 15:14
 * @Version 1.0
 */
public class ItemCheckListener  implements Listener {
    // 去除颜色和样式
    public static String stripColor(String input) {
        return ChatColor.stripColor(input);
    }
    /**
     * 检查物品是否是MM的物品
     *
     * @return Boolean
     * @Username 程序员-Su_xiaoxiang
     * @date 2025/1/24 15:17
     */
    public MythicItem checkItem(Player player) {
        // 获取 MythicMobs 插件实例
        ItemManager itemManager = MythicMobs.inst().getItemManager();
        // 获取玩家手中的物品
        ItemStack item = player.getInventory().getItemInMainHand();
        // 判断物品是否是MM的物品
        if (item != null && item.hasItemMeta()) {
            ItemMeta itemMeta = item.getItemMeta();
            if (itemMeta != null && itemMeta.hasDisplayName()) {
                // 获取物品的显示名称
                String displayName = itemMeta.getDisplayName();
                // 判断物品是否是MM的物品
                Optional<MythicItem> item1 = itemManager.getItem(stripColor(displayName));
                // 如果物品存在且为 MythicMobs 物品，则返回 true
                if (item1.isPresent()){
                    return item1.get();
                }
            }
        }
        return null;
    }
}